Objectif : Désambiguïsation des intitulés de conférences renseignés dans les données HAL, en se basant sur le référentiel CORE

Dernière mise à jour : 26 janvier 2023

Données à nettoyer :

  • Sources des données : API HAL requêtée sur les références de la collection HAL Inria de type COMM publiées entre 2018 et 2022
  • Dimensions : 21 variables et 10323 individus

Données de référence :


Résumé des bases

HAL

L’identifiant unique (hal_id) est récupéré depuis le champ url, et imputé aux 6 communications n’ayant pas d’identifiant à l’import des données de l’archive ouverte.

Variable Stats / Values Freqs (% of Valid) Graph Missing
bibtex_key
[character]
1. {Binary is the new Black
2. { - 6th I
3. {IFOW 2020 - Integrated F
4. {}}
5. {Workshop AutoML 2018 @ I
[ 10313 others ]
2 ( 0.0%)
2 ( 0.0%)
2 ( 0.0%)
2 ( 0.0%)
2 ( 0.0%)
10313 (99.9%)
0
(0.0%)
article_type
[character]
1. inproceedings
2. booktitle =·
3. title =·
4. organization =·
5. publisher =·
[ 2 others ]
10279 (99.6%)
31 ( 0.3%)
7 ( 0.1%)
2 ( 0.0%)
2 ( 0.0%)
2 ( 0.0%)
0
(0.0%)
title
[character]
1. Taking advantage of patho
2. Anticipation in the retin
3. New models and preprocess
4. Unit Commitment under Mar
5. An efficient domain decom
[ 10149 others ]
5 ( 0.0%)
4 ( 0.0%)
4 ( 0.0%)
4 ( 0.0%)
3 ( 0.0%)
10259 (99.8%)
44
(0.4%)
author
[character]
1. Rubino, Gerardo
2. Laugier, Christian
3. Makhalova, Tatiana and Ku
4. Maumet, Camille
5. Merlet, Jean-Pierre
[ 8582 others ]
14 ( 0.1%)
13 ( 0.1%)
12 ( 0.1%)
12 ( 0.1%)
12 ( 0.1%)
10223 (99.4%)
37
(0.4%)
url
[character]
1. https://hal-brgm.archives\ 2. https://hal-brgm.archives\ 3. https://hal-brgm.archives\ 4. https://hal-cea.archives-\ 5. https://hal-cea.archives-\ [ 10281 others ] 1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
10281 (100.0%)
37
(0.4%)
editor
[character]
1. ACM
2. Benzitoun, Christophe and
3. Chantal Keller and Timoth
4. IEEE
5. AFIHM
[ 373 others ]
11 ( 2.1%)
11 ( 2.1%)
9 ( 1.7%)
9 ( 1.7%)
8 ( 1.5%)
477 (90.9%)
9798
(94.9%)
series
[character]
1. Lecture Notes in Computer
2. LNCS
3. Proceedings of Machine Le
4. Leibniz International Pro
5. CEUR Workshop Proceedings
[ 1004 others ]
304 (17.4%)
91 ( 5.2%)
30 ( 1.7%)
29 ( 1.7%)
26 ( 1.5%)
1267 (72.5%)
8576
(83.1%)
volume
[character]
1. LNCS
2. 1
3. Lecture Notes in Computer
4. 2
5. 18
[ 707 others ]
24 ( 1.9%)
21 ( 1.7%)
19 ( 1.5%)
11 ( 0.9%)
10 ( 0.8%)
1151 (93.1%)
9087
(88.0%)
number
[character]
1. 1
2. 2
3. 9
4. 3
5. 16
[ 158 others ]
14 ( 5.2%)
11 ( 4.1%)
8 ( 3.0%)
7 ( 2.6%)
6 ( 2.2%)
223 (82.9%)
10054
(97.4%)
pages
[character]
1. 1-6
2. 1-8
3. 1-10
4. 1-4
5. 1-5
[ 2364 others ]
276 ( 6.1%)
238 ( 5.2%)
163 ( 3.6%)
160 ( 3.5%)
134 ( 2.9%)
3588 (78.7%)
5764
(55.8%)
year
[character]
1. 2018
2. 2019
3. 2020
4. 2021
5. 2022
2527 (24.5%)
2283 (22.1%)
1816 (17.6%)
1829 (17.7%)
1868 (18.1%)
0
(0.0%)
month
[character]
1. Jun
2. Jul
3. Sep
4. Oct
5. Dec
[ 7 others ]
1569 (15.5%)
1283 (12.7%)
1269 (12.5%)
999 ( 9.9%)
949 ( 9.4%)
4050 (40.0%)
204
(2.0%)
keywords
[character]
1. Formal Concept Analysis
2. accelerated fixed point ;
3. Adaptive Control ; Contro
4. Antivirus ; Evasion ; Win
5. biclustering ; FCA ; patt
[ 4937 others ]
3 ( 0.1%)
2 ( 0.0%)
2 ( 0.0%)
2 ( 0.0%)
2 ( 0.0%)
4965 (99.8%)
5347
(51.8%)
pdf
[character]
1. https://hal-agroparistech\ 2. https://hal-agroparistech\ 3. https://hal-brgm.archives\ 4. https://hal-brgm.archives\ 5. https://hal-brgm.archives\ [ 8470 others ] 1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
8470 (99.9%)
1848
(17.9%)
hal_id
[character]
1. cea-01746138
2. cea-01854072
3. cea-01855997
4. cea-01883311
5. cea-02339800
[ 10318 others ]
1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
1 ( 0.0%)
10318 (100.0%)
0
(0.0%)
hal_version
[character]
1. v1
2. v2
3. v3
4. v4
5. v5
[ 2 others ]
9405 (91.2%)
702 ( 6.8%)
154 ( 1.5%)
37 ( 0.4%)
11 ( 0.1%)
8 ( 0.1%)
6
(0.1%)
publisher
[character]
1. IEEE
2. Springer
3. ACM
4. Springer International Pu
5. ACM Press
[ 166 others ]
1014 (40.0%)
418 (16.5%)
375 (14.8%)
179 ( 7.1%)
111 ( 4.4%)
435 (17.2%)
7791
(75.5%)
doi
[character]
1. 10.1145/nnnnnnn.nnnnnnn
2. 10.1145/1122445.1122456
3. 10.4230/LIPIcs
4. 10.4230/LIPIcs.CVIT.2016.
5. 10.1007/978-3-030-27520-4
[ 3703 others ]
6 ( 0.2%)
5 ( 0.1%)
4 ( 0.1%)
3 ( 0.1%)
2 ( 0.1%)
3712 (99.5%)
6591
(63.8%)
organization
[character]
1. IEEE
2. ACM
3. INSA Lyon
4. Soci'et'e Franaise
5. IFAC
[ 290 others ]
53 (11.1%)
21 ( 4.4%)
20 ( 4.2%)
13 ( 2.7%)
10 ( 2.1%)
360 (75.5%)
9846
(95.4%)
booktitle
[character]
1. CDC 2019 - 58th IEEE Conf
2. NeurIPS 2020 - 34th Confe
3. IFAC 2020 - 21st IFAC Wor
4. ICPR 2020 - 25th Internat
5. CDC 2018 - 57th IEEE Conf
[ 7499 others ]
29 ( 0.3%)
19 ( 0.2%)
18 ( 0.2%)
17 ( 0.2%)
16 ( 0.2%)
10188 (99.0%)
36
(0.3%)
address
[character]
1. Paris, France
2. Virtual, France
3. Nice, France
4. Lyon, France
5. Nancy, France
[ 2163 others ]
371 ( 3.6%)
131 ( 1.3%)
125 ( 1.2%)
111 ( 1.1%)
111 ( 1.1%)
9469 (91.8%)
5
(0.0%)



CORE

Variable Stats / Values Freqs (% of Valid) Graph Missing
title
[character]
1. Australian Institute of C
2. Australian Women in IT Co
3. IEEE Global Telecommunica
4. International Command and
5. International Conference
[ 2201 others ]
2 ( 0.1%)
2 ( 0.1%)
2 ( 0.1%)
2 ( 0.1%)
2 ( 0.1%)
2202 (99.5%)
0
(0.0%)
Acronym
[character]
1. IDC
2. ISC
3. EGC
4. ICCC
5. ICEC
[ 1963 others ]
4 ( 0.2%)
4 ( 0.2%)
3 ( 0.1%)
3 ( 0.1%)
3 ( 0.1%)
2015 (99.2%)
180
(8.1%)
Source
[character]
1. CORE2021
2. CORE2018
3. ERA2010
4. CORE2014
5. CORE2020
[ 2 others ]
956 (43.2%)
741 (33.5%)
439 (19.8%)
36 ( 1.6%)
19 ( 0.9%)
21 ( 0.9%)
0
(0.0%)
Rank
[character]
1. C
2. B
3. A
4. A*
5. Australasian
[ 64 others ]
982 (44.5%)
564 (25.6%)
334 (15.1%)
64 ( 2.9%)
61 ( 2.8%)
202 ( 9.2%)
5
(0.2%)
DBLP
[character]
1. none
2. view
1364 (61.7%)
848 (38.3%)
0
(0.0%)
hasData?
[character]
1. No
2. Yes
1504 (68.0%)
708 (32.0%)
0
(0.0%)
Primary FoR
[integer]
Mean (sd) : 2517.5 (1889.4)
min < med < max:
8 < 1006 < 4613
IQR (CV) : 3802 (0.8)
43 distinct values 99
(4.5%)
Comments
[integer]
Mean (sd) : 0.5 (4.4)
min < med < max:
0 < 0 < 132
IQR (CV) : 0 (8.5)
24 distinct values 0
(0.0%)
Average Rating
[character]
1. N/A
2. 5.0
3. 4.0
4. 3.0
5. 4.5
[ 10 others ]
1990 (90.0%)
104 ( 4.7%)
55 ( 2.5%)
13 ( 0.6%)
11 ( 0.5%)
39 ( 1.8%)
0
(0.0%)
core_id
[integer]
Mean (sd) : 1106.5 (638.7)
min < med < max:
1 < 1106.5 < 2212
IQR (CV) : 1105.5 (0.6)
2212 distinct values
(Integer sequence)
0
(0.0%)



1. Désambiguïsation des intitulés de conférence


Afin de maximiser le matching des intitulés de conférences, un travail de nettoyage et de lémmatisation est préalablement effectué. Les intitulés sont ainsi mis en minuscules, sans accents et sans caractères spéciaux. Un match est opéré 2 fois pour faire correspondre les intitulés des données du HAL avec ceux du référentiel CORE.

Dans un premier temps, les chaînes de caractères formant l’intitulé des conférences HAL sont matchées avec celles du CORE, à partir de quoi on obtient une distance correspondant au nombre de caractères qui ne sont pas communs au 2 intitulés (si l’intitulé est exactement le même, la distance sera donc de 0). Cette manipulation est réalisée sur la variable HAL booktitle, matchée avec la variable CORE title indiquant l’intitulé des conférences.

Dans un deuxième temps ce sont seulement les acronymes qui sont matchés entre les données HAL et le référentiel CORE. Ces derniers sont extraits du nom de conférence disponible dans le champ “booktitle” des données HAL. La jointure se fait cette fois sur une base de match exact, contrairement aux manipulations réalisées en premier sur les intitulés des conférences. Ainsi, lorsque l’acronyme extrait du titre disponible dans les données HAL correspond à l’acronyme CORE, les informations du référentiel sont récupérées et viennent enrichir les données HAL.


Match par distance entre les chaînes de caractères (score)


Pour chaque communication HAL, une jointure approximative est effectuée sur les noms de conférences, en utilisant la méthode ‘Optimal string aligment’ qui ne récupère que le match le plus proche du champ à enrichir. Dans le cas où 2 noms de conférences ont la même distance par rapport au nom CORE, les 2 conférences sont gardées dans les données enrichies, et devront alors faire l’objet d’un traitement manuel.

Les intitulés originaux des communications et conférences des 2 sources de données sont réinjectés dans les données, à la place des intitulés lémmatisés.

Dans la table ci-dessous, les colonnes hal_title à booktitle proviennent de HAL ; les colonnes core_title à Primary FoR proviennent de CORE ; les colonnes distance, part_similarite et method sont générées par l’algorithme de comparaison.


Cette première méthode de jointure non exacte sur les intitulés de conférences a permis d’enrichir 10287 communications sur 10323, soit 99.65%. Les 36 communications restantes n’ont pas pu être enrichies faute d’une valeur renseignée dans le champ ‘booktitle’. Parmi les communications enrichies, 75 sont exactes, c’est-à-dire que l’intitulé dans les données HAL correspond exactement à celui de la conférence dans les données CORE (aux caractères spéciaux et majuscules près).



Match par mot commun aux deux chaînes de caractères (token)


La deuxième jointure est réalisée en identifiant l’acronyme qui se trouve typiquement dans l’intitulé de conférence des données HAL, pour le matcher avec les données CORE. Lorsque l’acronyme identifié se retrouve à l’identique dans le champ Acronym de CORE, alors l’entrée est enrichie du référentiel CORE. L’extraction de l’acronyme est faite de deux manières à partir du champ booktitle des données HAL :

  • le premier mot est extrait (excepté s’il s’agit d’un des 3 mots suivants : IEEE, ACM, SIAM qui sont des sociétés savantes organisant de nombreuses conférences) ;
  • le ou les mots entièrement en majuscules sont extraits ;
  • un arbitrage est effectué entre les 2 valeurs récupérées, selon un ensemble de règles implémentées dans le script ci-dessous.
# règle pour arbitrer entre premier mot ou mot en capitales
hal_acronym = case_when(is.na(capital_word) ~ first_word,
                        is.na(first_word) ~ capital_word,
                        first_word == "In" ~ capital_word, #cas particulier où "In" ne correspond pas à l'acronyme de la conf
                        first_word == capital_word ~ first_word,
                        str_detect(first_word, "[0-9]") == TRUE ~ capital_word, #qd first_word contient un chiffre
                        nchar(capital_word) == 1 ~ first_word, #qd 1 seul caractère dans capital_word
                        grepl('[^[:alnum:]]', first_word) ~ capital_word, #qd first_word contient des caractères spéciaux (hors lettres et digits)
                        TRUE ~ capital_word)  #dans les autres cas on garde le mot en lettre capitales car plus fiable

Après jointure des acronymes extraits des noms de conférences HAL avec les données du CORE, les données sont réharmonisées avec les bases initiales pour récupérer les intitulés et acronymes non lemmatisés.


Cette deuxième méthode de jointure exacte par match de l’acronyme CORE, a permis d’enrichir 5225 communications sur 10323, soit 51%.


Données HAL enrichies


Finalement, nous consolidons les données HAL enrichies via la méthode de score et via la méthode de token dans une même base de données. Lorsqu’un match avec le référentiel CORE a été trouvé avec les 2 méthodes, c’est la méthode du token qui est préférée car selon nos observations, elle est généralement plus fiable. Deux exceptions à cette règle interviennent ;

  • lorsque la méthode de jointure par score est parfaite (la distance entre les deux chaînes de caractères est de 0), celle-ci est alors préférée ;
  • lorsque plusieurs conférences sont trouvées via la méthode du token : il s’agit d’un cas où le même acronyme est attribué à plusieurs conférences dans les données CORE, la méthode par score est alors préférée.

Dans le cas où un match proposé par la méthode score est identique à un match proposé par la méthode token, nous le gardons (en prenant celui du score pour garder les informations des distances entre les chaînes de caractères), et nous renommons la méthode “score/token”. Pour ces communications, la variable ‘match_certain’ prend la valeur 1 signifiant ainsi que la jointure est certaine entre les données du HAL et les données du CORE (avec un intervalle de confiance de 95%). C’est également le cas des communications où le nom de conférence dans HAL est exactement le même que dans le référentiel, la distance est alors de 0, donc le match avec les données du CORE est certain. 3416 communications sont concernées, sur les 10287 jointures réalisées.

Ainsi, nous avons au total 10287 communications harmonisées et enrichies par les données CORE, soit 99.65% des données HAL récupérées par les années de 2018 à 2022. Parmi ces 10287 communications enrichies, 5256 sont finalement issues de la méthode du score (match non exact entre les intitulés de conférence), 1689 de la méthode du token (match exact entre les acronymes de conférence), et 3342 de ces deux dernières. Les 36 communications n’ayant pas de ‘booktitle’, donc ne pouvant pas être enrichies, sont réintégrées à la base de données.


Le graphique ci-dessus représente, pour les communications enrichies par la méthode du score, la distribution des distances entre les deux chaînes de caractères des noms de conférence. Celles-ci s’étendent de 0 (match parfait entre les 2 noms) à 221, avec une moyenne de 29 caractères d’écart.

Ci-dessous, les données HAL enrichies du référentiel CORE :



2. Données CORE millésimées


Cette deuxième partie vise à ajouter le rang de la conférence (de A* à Unranked, cf. ce guide) provenant du référentiel CORE, selon l’année de la communication. Pour cela, les données millésimées du référentiel sont parsées puis importées selon le script Parse_CORE_millesime.R.

Les données millésimées des 2212 conférences du référentiel CORE est récupéré depuis le portail CORE. Celles-ci sont alors jointes aux données enrichies de la première partie, en appliquant une règle de décision pour déterminer le rang de la conférence au moment de la communication :

  • lorsque l’année de la communication correspond à un millésime du référentiel, le rang de ce millésime est appliqué (ex: pour une publication de 2018 nous appliquons le rang dont la source est ‘CORE2018’) ;
  • lorsque l’année de la communication est 2019 ou 2022, années sans mise à jour du référentiel, nous prenons le rang de l’année précédente (ex: pour une publication de 2022 nous appliquons le rang dont la source est ‘CORE2021’) ;
  • lorsqu’un seul rang est disponible dans les données CORE millésimées, nous le gardons ;
  • dans tous les autres cas, le rang le plus récent est appliqué (excepté lorsque la source la plus récente est ‘ERA’ ; c’est alors la source ‘CORE’ qui est privilégiée).

Ainsi, le champ ‘Source’ est mis à jour en fonction de cette règle, ce qui modifie sa valeur pour 703 communications. Le fait de se référer à un autre millésime change alors la valeur du rang pour 231 d’entre elles.



Données finales


Les données finales de cette analyse sont visibles ci-dessous, et disponibles dans le dossier data du repository. Elles se composent des champs suivants :

  • hal_title : le titre de la communication, issu des données HAL ;
  • year : l’année de publication de la communication, issue des données HAL ;
  • hal_id : l’identifiant unique de la communication, issu des données HAL ;
  • booktitle : le titre de la conférence, issu des données HAL ;
  • core_title : le titre de la conférence, issu des données CORE ;
  • Acronym : l’acronyme de la conférence, issu des données CORE ;
  • Source : l’année du rang de la conférence correspondant à l’année de publication de la communication HAL ou l’année la plus récente disponible, issue des données CORE millésimées;
  • Rank : le rang de la conférence correspondant à l’année de publication de la communication HAL ou l’année la plus récente disponible, issu des données CORE millésimées ;
  • Primary FoR : l’identifiant du domaine de recherche (Field of Research) de la conférence, issu des données CORE non millésimées ;
  • core_id : l’identifiant unique de la conférence, calqué sur le numéro de notice des données CORE ;
  • distance : nombre de caractères non communs aux intitulés de conférence dans les données HAL (booktitle) et dans les données CORE (core_title), calculé en première partie ;
  • part_similarite : pourcentage de caractères de l’intitulé de conférence HAL se trouvant dans l’intitulé de conférence CORE, calculé en première partie ;
  • method : méthode ayant permis de désambiguïser l’intitulé de la conférence (soit “score” soit “token”), créée en première partie ;
  • match_certain : variable booléenne indiquant si la jointure entre les données HAL et CORE est certaine (‘1’) ou non (‘0’), créée en première partie ;
  • nb_conf_matches : nombre de conférences du référentiel CORE ayant matché avec les données HAL, nécessitant alors un tri manuel au regard des intitulés de conférences ainsi que des acronymes.


 

Réalisé par Datactivist

2023/01/16